-- Network Working Group                                           K. White
-- Request for Comments: 2561                                     IBM Corp.
-- Category: Standards Track                                       R. Moore
--                                                                IBM Corp.
--                                                               April 1999
-- 
--                 Base Definitions of Managed Objects for
--                           TN3270E Using SMIv2

  TN3270E-MIB DEFINITIONS ::= BEGIN

  IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, TimeTicks,
      IpAddress, Counter32, Gauge32, Counter64
          FROM SNMPv2-SMI
      TEXTUAL-CONVENTION, RowStatus, TestAndIncr, DateAndTime,
      TimeStamp
          FROM SNMPv2-TC
      MODULE-COMPLIANCE, OBJECT-GROUP
          FROM SNMPv2-CONF
      snanauMIB
          FROM SNA-NAU-MIB
      Utf8String
          FROM SYSAPPL-MIB
      SnmpAdminString
          FROM SNMP-FRAMEWORK-MIB
      IANATn3270eAddrType, IANATn3270eAddress,
      IANATn3270eClientType, IANATn3270Functions,
      IANATn3270ResourceType, IANATn3270DeviceType,
      IANATn3270eLogData
          FROM IANATn3270eTC-MIB;

    tn3270eMIB MODULE-IDENTITY
        LAST-UPDATED "9807270000Z" -- July 27, 1998
        ORGANIZATION "TN3270E Working Group"
        CONTACT-INFO
            "Kenneth White (kennethw@vnet.ibm.com)
             IBM Corp. - Dept. BRQA/Bldg. 501/G114
             P.O. Box 12195
             3039 Cornwallis
             RTP, NC 27709-2195
             USA

             Robert Moore (remoore@us.ibm.com)
             IBM Corp. - Dept. BRQA/Bldg. 501/G114
             P.O. Box 12195
             3039 Cornwallis
             RTP, NC 27709-2195
             USA
             +1-919-254-4436"
        DESCRIPTION
            "This module defines a portion of the management

            information base (MIB) for managing TN3270E servers."
        REVISION  "9807270000Z" -- July 27, 1998
        DESCRIPTION
            "RFC nnnn (Proposed Standard)" -- RFC Editor to fill in
        ::= { snanauMIB 8 }

  -- Textual Conventions

  SnaResourceName ::= TEXTUAL-CONVENTION
      STATUS      current
      DESCRIPTION
          "The textual convention for defining an SNA resource
           name. A fully qualified SNA resource name, consisting
           of a 1 to 8 character network identifier (NetId), a
           period ('.'), and a 1 to 8 character resource name
           (ResName).

           The NetId and ResName are constructed from the
           uppercase letters 'A' - 'Z' and the numerics '0' - '9',
           all encoded in ASCII, with the restriction that the
           first character of each must be a letter.  Blanks are
           not allowed.

           Earlier versions of SNA permitted three additional
           characters in NetIds and ResNames:  '#', '@', and '$'.
           While this use of these characters has been retired,
           a Management Station should still accept them for
           backward compatibility.

           Note: This Textual Convention is not subject to
           internationalization, and does not use the character
           encodings used by the Utf8String Textual Convention."
      SYNTAX     OCTET STRING (SIZE(0..17))

  Tn3270eTraceData ::= TEXTUAL-CONVENTION
      STATUS      current
      DESCRIPTION
          "An octet string representing trace data from the
          Telnet half of a TN3270E session, from the SNA half,
          or from both.  The octet string contains a sequence
          of trace elements, with the trace elements in the
          string ordered from earliest to latest.

          Each trace element has the following form:

                  +---+---+----+----------------------+
                  !length !type!data                  !
                  +---+---+----+----------------------+

            where:

            length = two-octet length of the data portion of the
                     trace element, not including the length and
                     type octets

            type   = one-octet code point characterizing the data;
                     defined values are:

                     X'01' telnet PDU from the server to the client
                     X'02' telnet PDU from the client to the server
                     X'03' SNA data from the server to the SNA host
                     X'04' SNA data from the SNA host to the server

            data   = initial part of a PDU.

          It is implementation-dependent where the 'initial part of
          a PDU' starts.  For SNA data, however, the starting point
          SHOULD be the first byte of the TH.  For IP data the
          starting point SHOULD be the first byte of the IP header.

          It is left to implementations to determine how much of
          each PDU to return in a trace element.

          The zero-length string indicates that no trace
          data is available."
      SYNTAX OCTET STRING (SIZE (0 | 3..4096))

  -- Top-level structure of the MIB

  tn3270eNotifications  OBJECT IDENTIFIER ::= { tn3270eMIB 0 }
  tn3270eObjects        OBJECT IDENTIFIER ::= { tn3270eMIB 1 }
  tn3270eConformance    OBJECT IDENTIFIER ::= { tn3270eMIB 3 }

  -- MIB Objects

  tn3270eSrvrConfTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eSrvrConfEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines the configuration elements for
          TN3270E servers.  The number of entries in this table
          is expected to vary depending on the location of the
          table.  A particular TN3270E server is expected to
          have a single entry.  Modeling of the configuration
          elements as a table allows multiple TN3270E
          servers to be serviced by the same SNMP agent.

          An implementation SHOULD NOT retain an SNMP-created
          entry in this table across re-IPLs (Initial Program
          Loads) of the corresponding TN3270E server."

      ::= { tn3270eObjects 1 }

  tn3270eSrvrConfEntry OBJECT-TYPE
      SYNTAX      Tn3270eSrvrConfEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Definition of the configuration elements for a single
          TN3270E server."
      INDEX       { tn3270eSrvrConfIndex }
      ::= { tn3270eSrvrConfTable 1 }

  Tn3270eSrvrConfEntry ::= SEQUENCE {
      tn3270eSrvrConfIndex             Unsigned32,
      tn3270eSrvrConfInactivityTimeout Unsigned32,
      tn3270eSrvrConfConnectivityChk   INTEGER,
      tn3270eSrvrConfTmNopInactTime    Unsigned32,
      tn3270eSrvrConfTmNopInterval     Unsigned32,
      tn3270eSrvrFunctionsSupported    IANATn3270Functions,
      tn3270eSrvrConfAdminStatus       INTEGER,
      tn3270eSrvrConfOperStatus        INTEGER,
      tn3270eSrvrConfSessionTermState  INTEGER,
      tn3270eSrvrConfSrvrType          INTEGER,
      tn3270eSrvrConfContact           SnmpAdminString,
      tn3270eSrvrConfRowStatus         RowStatus,
      tn3270eSrvrConfLastActTime       DateAndTime,
      tn3270eSrvrConfTmTimeout         Unsigned32
    }

  tn3270eSrvrConfIndex  OBJECT-TYPE
      SYNTAX      Unsigned32 (1..4294967295)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "Identifier for a single TN3270E server.

         tn3270eSrvrConfIndex values need not be
         contiguous."
      ::= { tn3270eSrvrConfEntry 1 }

  tn3270eSrvrConfInactivityTimeout OBJECT-TYPE
      SYNTAX      Unsigned32 (0..99999999)
      UNITS "seconds"
      MAX-ACCESS  read-create

      STATUS      current
      DESCRIPTION
         "The inactivity time-out specified in seconds.  When a
          connection has been inactive for the number of seconds
          specified by this object it is closed.  Only user traffic
          is considered when determining whether there has been
          activity on a connection.

          The default value 0 means that no inactivity time-out is
          in effect."
      DEFVAL { 0 }
      ::= { tn3270eSrvrConfEntry 2 }

  tn3270eSrvrConfConnectivityChk OBJECT-TYPE
      SYNTAX      INTEGER {
                            timingMark(1),
                            nop(2),
                            noCheck(3)
                          }
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "This object enables TIMING-MARK processing, NOP
          processing, or neither for a TN3270E server."
      DEFVAL { noCheck }
      ::= { tn3270eSrvrConfEntry 3 }

  tn3270eSrvrConfTmNopInactTime OBJECT-TYPE
      SYNTAX      Unsigned32 (1..86400) -- 1 second to 24 hours
      UNITS "seconds"
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "The amount of time a connection must have had no
         traffic on it in order for a TIMING-MARK or NOP request
         to be sent on the connection.  This value applies only
         when connections are being examined for recent activity
         on a scan interval controlled by the value of the
         tn3270eSrvrConfTmNopInterval object."
      DEFVAL { 600 }   -- 10 minutes
      ::= { tn3270eSrvrConfEntry 4 }

  tn3270eSrvrConfTmNopInterval OBJECT-TYPE
      SYNTAX      Unsigned32 (1..86400) -- 1 second to 24 hours
      UNITS "seconds"
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION

         "The scan interval to be used by a TN3270E server when
         it examines its Telnet connections for recent activity.
         The server scans its Telnet connections on the interval
         provided by this object, looking for ones that have been
         idle for more than the value provided by the
         tn3270eSrvrConfTmNopInactTime object.  A TIMING-MARK or
         NOP request is sent for each connection that has
         exhibited no activity for this period of time."
      DEFVAL { 120 }   -- 2 minutes
      ::= { tn3270eSrvrConfEntry 5 }

  tn3270eSrvrFunctionsSupported OBJECT-TYPE
      SYNTAX    IANATn3270Functions
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This object indicates the functions supported by a
          TN3270E server."
      DEFVAL { { scsCtlCodes, dataStreamCtl,
                 responses, bindImage, sysreq } }
      ::= { tn3270eSrvrConfEntry 6 }

  tn3270eSrvrConfAdminStatus OBJECT-TYPE
      SYNTAX  INTEGER {
                        up(1),
                        down(2),
                        stopImmediate(3)
                      }
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "The desired state of the TN3270E server represented
           by this entry in the table:

           up(1)            - Activate this TN3270E server.
           down(2)          - Informs the associated TN3270E
                              server to gracefully terminate
                              its processing.
           stopImmediate(3) - Informs the associated TN3270E
                              server to terminate itself
                              immediately.

           When a managed system creates an entry in this table,
           tn3270eSrvrConfAdminStatus and tn3270eSrvrConfOperStatus
           are initialized as up(1) by default.

           The exact behavior of a server in response to a down(2)
           or stopImmediate(3) command is left implementation-

           dependent.  A TN3270E server that is capable of it
           SHOULD close all of its TN3270 and TN3270E sessions
           during a graceful termination.

           Often the function enabled via stopImmediate(3) is used
           as a last resort by a system administrator, to attempt
           to either bring down a hung TN3270E server or free up
           its resources immediately to aid in general system
           availability, or to shut down a TN3270E server that is
           not recognizing a down(2) request.

           A TN3270E server that does not distinguish between
           down(2) or stopImmediate(3) transitions should not
           support stopImmediate(3)."
      DEFVAL { up }
      ::= { tn3270eSrvrConfEntry 7 }

  tn3270eSrvrConfOperStatus OBJECT-TYPE
      SYNTAX  INTEGER {
                       up(1),
                       down(2),
                       busy(3),
                       shuttingDown(4)
                      }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The current operational state of a TN3270E server.
         The following values are defined:

          up(1)            - the server is active and accepting
                             new client connections
          down(2)          - the server is not active
          busy(3)          - the server is active, but is not
                             accepting new client connections
                             because it lacks the resources to
                             do so
          shuttingDown(4)  - the server is active, but is not
                             accepting new client connections
                             because it is in the process of
                             performing a graceful shutdown."
      DEFVAL { up }
      ::= { tn3270eSrvrConfEntry 8 }

  tn3270eSrvrConfSessionTermState OBJECT-TYPE
      SYNTAX  INTEGER {
                        terminate(1),
                        luSessionPend(2),

                        queueSession(3)
                      }
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "This object determines what a TN3270E server
          should do when a TN3270 Session terminates:
         terminate(1)     => Terminate the TCP connection.
         luSessionPend(2) => Do not drop the TCP connection
                             associated with a client when its
                             TN3270 session ends.  Processing
                             should redrive session initialization
                             as if the client were first connecting.
         queueSession(3)  => This value relates to the Close
                             Destination PASS (CLSDST PASS) operation
                             in VTAM.  An example provides the
                             easiest explanation.  Suppose a TN3270E
                             client is in session with APPL1, and
                             APPL1 does a CLSDST PASS of the client's
                             session to APPL2.  queueSession(3)
                             specifies that the TN3270E server must
                             keep the TCP connection with the client
                             active after it receives the UNBIND from
                             APPL1, waiting for the BIND from APPL2."
      DEFVAL { terminate }
      ::= { tn3270eSrvrConfEntry 9 }

  tn3270eSrvrConfSrvrType OBJECT-TYPE
      SYNTAX      INTEGER {
                            host(1),
                            gateway(2)
                          }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "This object indicates the type of TN3270E server.
          The existence of MIB tables and objects that will be
          defined by follow-on MIBs may be predicated on whether
          the TN3270E server can be local to the same host as a
          target application (host(1)) or will always be remote
          (gateway(2)).

          A host TN3270E server refers to an implementation where
          the TN3270E server is collocated with the Systems
          Network Architecture (SNA) System Services Control Point
          (SSCP) for the dependent Secondary Logical Units (SLUs)
          that the server makes available to its clients for
          connecting into an SNA network.

          A gateway TN3270E server resides on an SNA node other
          than an SSCP, either an SNA type 2.0 node or an APPN node
          acting in the role of a Dependent LU Requester (DLUR).

          Host and gateway TN3270E server implementations typically
          differ greatly as to their internal implementation and
          system definition (SYSDEF) requirements."
      ::= { tn3270eSrvrConfEntry 10 }

  tn3270eSrvrConfContact OBJECT-TYPE
      SYNTAX      SnmpAdminString
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object provides a scratch pad for a TN3270E
          server administrator for storing information for
          later retrieval."
      DEFVAL { ''H }   -- the empty string
      ::= { tn3270eSrvrConfEntry 11 }

  tn3270eSrvrConfRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object allows entries to be created and deleted
          in the tn3270eSrvrConfTable.  Entries may also be
          created and deleted as a result of implementation-
          dependent operations.

          With the exception of tn3270eSrvrConfSrvrType, which
          an implementation can easily fill in for itself, all
          the columnar objects in this table have DEFVALs
          associated with them.  Consequently, a Management
          Station can create a conceptual row via a SET
          operation that specifies a value only for this object.

          When a tn3270eSrvrConfEntry is deleted (by setting
          this object to destroy(6)), this has the side-effect
          of removing all the associated entries (i.e., those
          having the same tn3270eSrvrConfIndex) from the
          tn3270eSrvrPortTable, the tn3270eSrvrStatsTable, the
          tn3270eClientGroupTable, the tn3270eResPoolTable,
          the tn3270eSnaMapTable, the tn3270eClientResMapTable,
          and the tn3270eResMapTable.  All entries in the
          tn3270eTcpConnTable that belong to a TN3270E server
          that has been deleted MUST also be removed.

          In other words, a tn3270eSrvrConfEntry must exist for
          a TN3270E server in order for it to have entries in
          any of the other tables defined by this MIB."
      REFERENCE
          "RFC 1903, 'Textual Conventions for version 2 of the
          Simple Network Management Protocol (SNMPv2).'"
      ::= { tn3270eSrvrConfEntry 12 }

  tn3270eSrvrConfLastActTime OBJECT-TYPE
      SYNTAX      DateAndTime
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "This object reports the DateAndTime when a TN3270E
          server was most recently activated.

          The special value of all '00'Hs indicates that the
          server has never been active, i.e., that the value of
          tn3270eSrvrOperStatus has never been anything other
          than down(2)."
      DEFVAL { '0000000000000000'H }
      ::= { tn3270eSrvrConfEntry 13 }

  tn3270eSrvrConfTmTimeout OBJECT-TYPE
      SYNTAX      Unsigned32 (1..600) -- 1 second to 10 minutes
      UNITS "seconds"
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "The TIMING-MARK time-out, specified in seconds."
      DEFVAL { 5 }   -- 5 seconds
      ::= { tn3270eSrvrConfEntry 14 }

  tn3270eSrvrPortTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eSrvrPortEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines the TCP ports associated with
          TN3270E servers.  No entry in this table shall exist
          without a corresponding (same tn3270eSrvrConfIndex)
          entry in the tn3270eSrvrConfTable existing.

          An implementation SHOULD NOT retain SNMP-created
          entries in this table across re-IPLs (Initial Program
          Loads) of the corresponding TN3270E server."
      ::= { tn3270eObjects 2 }

  tn3270eSrvrPortEntry OBJECT-TYPE
      SYNTAX      Tn3270eSrvrPortEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Definition of a single TCP port assignment to a
           TN3270E server.  Assignment of a port on a local
           address basis is enabled though use of
           tn3270eSrvrPortAddrType and tn3270eSrvrPortAddress.

           A TCP port assignment that is not restricted to
           a local address SHALL specify a tn3270eSrvrPortAddrType
           of unknown(0), and SHALL use a zero-length octet string
           for the tn3270eSrvrPortAddress."
      INDEX       {
                    tn3270eSrvrConfIndex,
                    tn3270eSrvrPort,
                    tn3270eSrvrPortAddrType,
                    tn3270eSrvrPortAddress
                  }
      ::= { tn3270eSrvrPortTable 1 }

  Tn3270eSrvrPortEntry ::= SEQUENCE {
      tn3270eSrvrPort                 Unsigned32,
      tn3270eSrvrPortAddrType         IANATn3270eAddrType,
      tn3270eSrvrPortAddress          IANATn3270eAddress,
      tn3270eSrvrPortRowStatus        RowStatus
    }

  tn3270eSrvrPort OBJECT-TYPE
      SYNTAX      Unsigned32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "Indicates a port assigned to a server."
      ::= { tn3270eSrvrPortEntry 1 }

  tn3270eSrvrPortAddrType OBJECT-TYPE
      SYNTAX      IANATn3270eAddrType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Indicates the type of an address local to the host on
          which the TN3270E server resides that is represented
          in tn3270eSrvrPortAddress.  A value of unknown(0)
          SHALL be used for this object when the port is not
          to be restricted to a local address."
      ::= { tn3270eSrvrPortEntry 2 }

  tn3270eSrvrPortAddress OBJECT-TYPE
      SYNTAX      IANATn3270eAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A local address on the host that a TN3270E server
           resides on that is associated with a TCP port that
           is to be used or is in use by a TN3270E server.
           tn3270eClientGroupAddrType indicates the
           address type (IPv4 or IPv6, for example).

           A zero-length octet string SHALL be used as the
           value of this object when a local address isn't
           being specified."
      ::= { tn3270eSrvrPortEntry 3 }

  tn3270eSrvrPortRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object allows entries to be created and deleted
          in the tn3270eSrvrPortTable.  Entries may also be
          created and deleted as a result of implementation-
          dependent operations.

          Since this is the only accessible object in this table,
          a Management Station can create a conceptual row via a SET
          operation that specifies a value only for this object.

          An entry in this table is deleted by setting this object
          to destroy(6).  Deletion of a tn3270eSrvrPortEntry has
          no effect on any other table entry defined by this MIB."
      REFERENCE
          "RFC 1903, 'Textual Conventions for version 2 of the
          Simple Network Management Protocol (SNMPv2).'"
      ::= { tn3270eSrvrPortEntry 4 }

  tn3270eSrvrStatsTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eSrvrStatsEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines a set of statistics concerning
          TN3270E server performance.

          No entry in this table shall exist without
          a corresponding (same tn3270eSrvrConfIndex) entry in

          the tn3270eSrvrConfTable existing."
      ::= { tn3270eObjects 3 }

  tn3270eSrvrStatsEntry OBJECT-TYPE
      SYNTAX      Tn3270eSrvrStatsEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A collection of statistical and maximum usage objects
          for a single TN3270 server.  An entry can represent the total
          activity of the server, or it can represent the activity
          occurring at the server on either a port or a
          port-and-local-address basis.

          Collection of the statistics represented by the objects
          in this table is not mandatory.   An implementation
          of this table MUST use only one of the three levels of
          refinement that this table supports for the entries
          associated with each TN3270E server.

          The indexing for a row that represents total server
          statistics is as follows:

               tn3270eSrvrConfIndex      value identifying the server
               tn3270eSrvrPort           0
               tn3270eSrvrPortAddrType   unknown(0)
               tn3270eSrvrPortAddress    zero-length octet string.

          On a port basis:

               tn3270eSrvrConfIndex      value identifying the server
               tn3270eSrvrPort           > 0
               tn3270eSrvrPortAddrType   unknown(0)
               tn3270eSrvrPortAddress    zero-length octet string.

          On a port-and-local-address basis:

               tn3270eSrvrConfIndex      value identifying the server
               tn3270eSrvrPort           > 0
               tn3270eSrvrPortAddrType   valid value other than unknown(0)
               tn3270eSrvrPortAddress    non-zero-length octet string.

         "
      INDEX       {
                    tn3270eSrvrConfIndex,
                    tn3270eSrvrPort,
                    tn3270eSrvrPortAddrType,
                    tn3270eSrvrPortAddress

                  }
      ::= { tn3270eSrvrStatsTable 1 }

  Tn3270eSrvrStatsEntry ::= SEQUENCE {
      tn3270eSrvrStatsUpTime          TimeStamp,
      tn3270eSrvrStatsMaxTerms        Unsigned32,
      tn3270eSrvrStatsInUseTerms      Gauge32,
      tn3270eSrvrStatsSpareTerms      Gauge32,
      tn3270eSrvrStatsMaxPtrs         Unsigned32,
      tn3270eSrvrStatsInUsePtrs       Gauge32,
      tn3270eSrvrStatsSparePtrs       Gauge32,
      tn3270eSrvrStatsInConnects      Counter32,
      tn3270eSrvrStatsConnResrceRejs  Counter32,
      tn3270eSrvrStatsDisconnects     Counter32,
      tn3270eSrvrStatsHCInOctets      Counter64,
      tn3270eSrvrStatsInOctets        Counter32,
      tn3270eSrvrStatsHCOutOctets     Counter64,
      tn3270eSrvrStatsOutOctets       Counter32,
      tn3270eSrvrStatsConnErrorRejs   Counter32
    }

  tn3270eSrvrStatsUpTime OBJECT-TYPE
      SYNTAX      TimeStamp
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The value of the sysUpTime object the last time
          the TN3270E server was re-initialized.

          Server re-initialization is the only discontinuity
          event for the counters in this table.  Even if table
          entries are on a port or port-and-local-address
          basis, port deactivation and reactivation do not
          result in counter discontinuities."
      ::= { tn3270eSrvrStatsEntry 2 }

  tn3270eSrvrStatsMaxTerms OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "LUs"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the maximum number of terminal LUs available
         for use at a TN3270E server for the granularity of this
         conceptual row (server-wide, port, or
         port-and-local-address)."
      ::= { tn3270eSrvrStatsEntry 3 }

  tn3270eSrvrStatsInUseTerms OBJECT-TYPE
      SYNTAX      Gauge32
      UNITS       "LUs"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of terminal LUs currently in
         use at a TN3270E server for the granularity of this
         conceptual row (server-wide, port, or
         port-and-local-address)."
      ::= { tn3270eSrvrStatsEntry 4 }

  tn3270eSrvrStatsSpareTerms OBJECT-TYPE
      SYNTAX      Gauge32
      UNITS       "LUs"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of free terminal LUs at a TN3270E
         server for the granularity of this conceptual row
         (server-wide, port, or port-and-local-address).

         It is possible that the difference between
         tn3270eSrvrStatsMaxTerms and tn3270eSrvrStatsInUseTerms
         in a conceptual row does not equal the value of
         tn3270eSrvrStatsSpareTerms in that row:  an LU may
         exist but not be usable by a client connection.

         Alternatively, the administrative ceiling represented
         by tn3270eSrvrStatsMaxTerms may have been lowered to
         a point where it is less than the current value of
         tn3270eSrvrStatsInUseTerms.  In this case
         tn3270eSrvrStatsSpareTerms returns the value 0."

      ::= { tn3270eSrvrStatsEntry 5 }

  tn3270eSrvrStatsMaxPtrs OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "Printer Resources"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the maximum number of printer resources
         available for use by a TN3270E server for the
         granularity of this conceptual row (server-wide,
         port, or port-and-local-address)."
      ::= { tn3270eSrvrStatsEntry 6 }

  tn3270eSrvrStatsInUsePtrs OBJECT-TYPE
      SYNTAX      Gauge32
      UNITS       "Printer Resources"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of printer resources
         currently in use by a TN3270E server for the
         granularity of this conceptual row (server-wide,
         port, or port-and-local-address)."
      ::= { tn3270eSrvrStatsEntry 7 }

  tn3270eSrvrStatsSparePtrs OBJECT-TYPE
      SYNTAX      Gauge32
      UNITS       "Spare Printer Resources"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of free printer resources at
         a TN3270E server for the granularity of this conceptual
         row (server-wide, port, or port-and-local-address).

         It is possible that the difference between
         tn3270eSrvrStatsMaxPtrs and tn3270eSrvrStatsInUsePtrs
         in a conceptual row does not equal the value of
         tn3270eSrvrStatsSparePtrs in that row:  a printer
         resource may exist but not be usable by a client
         connection.

         Alternatively, the administrative ceiling represented
         by tn3270eSrvrStatsMaxPtrs may have been lowered to
         a point where it is less than the current value of
         tn3270eSrvrStatsInUsePtrs.  In this case
         tn3270eSrvrStatsSparePtrs returns the value 0."
      ::= { tn3270eSrvrStatsEntry 8 }

  tn3270eSrvrStatsInConnects OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "connections"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of client (TCP) connections
         that succeeded at a TN3270E server for the
         granularity of this conceptual row (server-wide,
         port, or port-and-local-address).

         The tn3270eSrvrStatsConnResrceRejs and

         tn3270eSrvrStatsConnErrorRejs objects provide a count
         of failed connection attempts.

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 9 }

  tn3270eSrvrStatsConnResrceRejs OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "connection attempts"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of (TCP) connections rejected
         during connection setup at a TN3270E server for the
         granularity of this conceptual row (server-wide,
         port, or port-and-local-address) due to a lack of
         resources at the server.  An example of when this
         counter would be incremented is when no terminal
         or printer resource is available to associate with a
         client's TCP connection.

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 10 }

  tn3270eSrvrStatsDisconnects OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "disconnections"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of (TCP) connections that were
         disconnected at a TN3270E server for the
         granularity of this conceptual row (server-wide,
         port, or port-and-local-address).

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 11 }

  tn3270eSrvrStatsHCInOctets OBJECT-TYPE
      SYNTAX      Counter64
      UNITS       "octets"
      MAX-ACCESS  read-only

      STATUS      current
      DESCRIPTION
         "Indicates the number of octets received from TN3270
         and TN3270E clients for the granularity of this
         conceptual row (server-wide, port, or
         port-and-local-address).

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 12 }

  tn3270eSrvrStatsInOctets OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "octets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Low-order 32 bits of tn3270eSrvrStatsHCInOctets for
         this conceptual row.

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 13 }

  tn3270eSrvrStatsHCOutOctets OBJECT-TYPE
      SYNTAX      Counter64
      UNITS       "octets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of octets sent to TN3270
         and TN3270E clients for the granularity of this
         conceptual row (server-wide, port, or
         port-and-local-address).

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 14 }

  tn3270eSrvrStatsOutOctets OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "octets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION

         "Low-order 32 bits of tn3270eSrvrStatsHCOutOctets for
         this conceptual row.

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 15 }

  tn3270eSrvrStatsConnErrorRejs OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "connection attempts"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of (TCP) connections rejected
         during connection setup at a TN3270E server for the
         granularity of this conceptual row (server-wide,
         port, or port-and-local-address) due to an error
         of some type.  An example of when this counter would
         be incremented is when the client and the server
         cannot agree on a common set of TN3270E functions for
         the connection.

         A Management Station can detect discontinuities in
         this counter by monitoring the tn3270eSrvrStatsUpTime
         object."
      ::= { tn3270eSrvrStatsEntry 16 }

  tn3270eClientGroupTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eClientGroupEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines client address groupings for use
          by a TN3270E server.

          No entry in this table shall exist without
          a corresponding (same tn3270eSrvrConfIndex) entry in
          the tn3270eSrvrConfTable existing.

          An implementation SHOULD NOT retain SNMP-created
          entries in this table across re-IPLs (Initial Program
          Loads) of the corresponding TN3270E server."
      ::= { tn3270eObjects 4 }

  tn3270eClientGroupEntry OBJECT-TYPE
      SYNTAX      Tn3270eClientGroupEntry
      MAX-ACCESS  not-accessible

      STATUS      current
      DESCRIPTION
          "Definition of a single client address entry.  All
          entries with the same first two indexes,
          tn3270eSrvrConfIndex and tn3270eClientGroupName, are
          considered to be in the same client group."
      INDEX       { tn3270eSrvrConfIndex,
                    tn3270eClientGroupName,
                    tn3270eClientGroupAddrType,
                    tn3270eClientGroupAddress }
      ::= { tn3270eClientGroupTable 1 }

  Tn3270eClientGroupEntry ::= SEQUENCE {
      tn3270eClientGroupName           Utf8String,
      tn3270eClientGroupAddrType       IANATn3270eAddrType,
      tn3270eClientGroupAddress        IANATn3270eAddress,
      tn3270eClientGroupSubnetMask     IpAddress,
      tn3270eClientGroupPfxLength      Unsigned32,
      tn3270eClientGroupRowStatus      RowStatus
  }

  tn3270eClientGroupName OBJECT-TYPE
      SYNTAX      Utf8String (SIZE(1..24))
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The name of a client group.  Note: client group
          names are required to be unique only with respect
          to a single TN3270E server."
      ::= { tn3270eClientGroupEntry 1 }

  tn3270eClientGroupAddrType OBJECT-TYPE
      SYNTAX      IANATn3270eAddrType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Indicates the type of the address represented in
           tn3270eClientGroupAddress."
      ::= { tn3270eClientGroupEntry 2 }

  tn3270eClientGroupAddress OBJECT-TYPE
      SYNTAX      IANATn3270eAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The client address of a member of a client group.
          The value of tn3270eClientGroupAddrType indicates
          the address type (IPv4 or IPv6, for example)."

      ::= { tn3270eClientGroupEntry 3 }

  tn3270eClientGroupSubnetMask OBJECT-TYPE
      SYNTAX      IpAddress
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "The corresponding subnet mask associated with
           tn3270eClientGroupAddress.  A single IP address is
           represented by having this object contain the value
           of 255.255.255.255.

           This object's value is meaningful only if
           tn3270eClientGroupAddrType has a value of ipv4(1)."
      DEFVAL { 'FFFFFFFF'H }
      ::= { tn3270eClientGroupEntry 4 }

  tn3270eClientGroupPfxLength OBJECT-TYPE
      SYNTAX      Unsigned32 (0..128)
      UNITS       "bits"
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "The corresponding IPv6 network prefix length.

          This object's value is meaningful only if
          tn3270eClientGroupAddrType  has a value of ipv6(2)."
      DEFVAL { 0 }
      ::= { tn3270eClientGroupEntry 5 }

  tn3270eClientGroupRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object allows entries to be created and deleted
          in the tn3270eClientGroupTable.  Entries may also be
          created and deleted as a result of implementation-
          dependent operations.

          An entry in this table is deleted by setting this object
          to destroy(6).  When the number of entries in this table
          for a given client group becomes 0, this has the side-
          effect of removing any entries for the group in the
          tn3270eClientResMapTable."
      REFERENCE
          "RFC 1903, 'Textual Conventions for version 2 of the
          Simple Network Management Protocol (SNMPv2).'"

      ::= { tn3270eClientGroupEntry 6 }

  tn3270eResPoolTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eResPoolEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines resource groupings; the term
          'pool' is used as it is defined by RFC 2355.

          No entry in this table shall exist without
          a corresponding (same tn3270eSrvrConfIndex) entry in
          the tn3270eSrvrConfTable existing.

          An implementation SHOULD NOT retain SNMP-created
          entries in this table across re-IPLs (Initial Program
          Loads) of the corresponding TN3270E server."
      ::= { tn3270eObjects 5 }

  tn3270eResPoolEntry OBJECT-TYPE
      SYNTAX      Tn3270eResPoolEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Definition of a single resource pool member.  All entries
          with the same first two indexes, tn3270eSrvrConfIndex and
          tn3270eResPoolName, are considered to be in the same pool."
      INDEX  { tn3270eSrvrConfIndex,
               tn3270eResPoolName,
               tn3270eResPoolElementName }
      ::= { tn3270eResPoolTable 1 }

  Tn3270eResPoolEntry ::= SEQUENCE {
      tn3270eResPoolName           Utf8String,
      tn3270eResPoolElementName    SnaResourceName,
      tn3270eResPoolElementType    IANATn3270ResourceType,
      tn3270eResPoolRowStatus      RowStatus
  }

  tn3270eResPoolName OBJECT-TYPE
      SYNTAX      Utf8String (SIZE(1..24))
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The name of a resource pool."
      ::= { tn3270eResPoolEntry 1 }

  tn3270eResPoolElementName OBJECT-TYPE

      SYNTAX      SnaResourceName
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The name of a member of a resource pool."
      ::= { tn3270eResPoolEntry 2 }

  tn3270eResPoolElementType OBJECT-TYPE
      SYNTAX      IANATn3270ResourceType
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "The type of the entity in a resource pool."
      ::= { tn3270eResPoolEntry 3 }

  tn3270eResPoolRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object allows entries to be created and deleted
          in the tn3270eResPoolTable.  Entries may also be
          created and deleted as a result of implementation-
          dependent operations.

          An entry in this table is deleted by setting this object
          to destroy(6).  When all entries in this table associated
          with the same tn3270eResPoolElementName have been removed,
          then any associated (tn3270eResPoolElementName matching
          tn3270eClientResMapPoolName with same tn3270eSrvrConfIndex
          values) entries in the tn3270eClientResMapTable SHALL
          also be removed."
      REFERENCE
          "RFC 1903, 'Textual Conventions for version 2 of the
          Simple Network Management Protocol (SNMPv2).'"
      ::= { tn3270eResPoolEntry 4 }

  tn3270eSnaMapTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eSnaMapEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table provide a mapping from the name by which
          a secondary LU is known in the SNA network to the
          name by which it is known locally at the TN3270e
          server.  This latter name serves as an index into
          the tn3270eResPoolTable and the tn3270eResMapTable.

          No entry in this table shall exist without
          a corresponding (same tn3270eSrvrConfIndex) entry in
          the tn3270eSrvrConfTable existing."
      ::= { tn3270eObjects 6 }

  tn3270eSnaMapEntry OBJECT-TYPE
      SYNTAX      Tn3270eSnaMapEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Definition of a single mapping from an SSCP-supplied
          SLU name to a local SLU name.

          Note:  In certain pathological cases, it is possible
          that an SSCP will send on an ACTLU for a local LU an
          SLU name currently represented by an entry in this
          table that associates it with a different local LU.
          In these cases the association from the newer ACTLU
          SHOULD be the one represented in this table."
      INDEX  { tn3270eSrvrConfIndex,
               tn3270eSnaMapSscpSuppliedName }
      ::= { tn3270eSnaMapTable 1 }

  Tn3270eSnaMapEntry ::= SEQUENCE {
      tn3270eSnaMapSscpSuppliedName     SnaResourceName,
      tn3270eSnaMapLocalName            SnaResourceName,
      tn3270eSnaMapPrimaryLuName        SnaResourceName
  }

  tn3270eSnaMapSscpSuppliedName OBJECT-TYPE
      SYNTAX      SnaResourceName
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The name of the secondary LU (SLU) as it is known in
           the SNA network.  This name is sent by the SSCP on
           the Activate Logical Unit (ACTLU) request."
      ::= { tn3270eSnaMapEntry 1 }

  tn3270eSnaMapLocalName OBJECT-TYPE
      SYNTAX      SnaResourceName
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The local name of the secondary LU (SLU)."
      ::= { tn3270eSnaMapEntry 2 }

  tn3270eSnaMapPrimaryLuName  OBJECT-TYPE

      SYNTAX   SnaResourceName
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "When there is a currently active LU-LU session for
          this connection, this object returns the primary LU
          (PLU) name from the BIND.  When there is no active
          LU-LU session, or when the PLU name is unavailable
          for some other reason, this object returns a
          zero-length octet string."
      ::= { tn3270eSnaMapEntry 3 }

  tn3270eClientResMapTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eClientResMapEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines resource-pool to client-group
          mappings.  Since both the resource pool name and client
          group name are included in the index clause of this
          table, multiple resource pools can be assigned to the
          same client group.  This enables use of multiple
          resource pools for use in client to resource mapping.
          Assigning multiple client groups to the same resource
          pool is also allowed, but is not the primary purpose
          for how the indexing is structured.

          Assignment of a resource pool to client group can be
          restricted based on TCP port.  An index value of 0 for
          tn3270eClientResMapClientPort disables restriction of
          resource assignment based on client target port
          selection.

          No entry in this table shall exist without
          a corresponding (same tn3270eSrvrConfIndex) entry in
          the tn3270eSrvrConfTable existing.

          An implementation SHOULD NOT retain SNMP-created
          entries in this table across re-IPLs (Initial Program
          Loads) of the corresponding TN3270E server."
      ::= { tn3270eObjects 7 }

  tn3270eClientResMapEntry OBJECT-TYPE
      SYNTAX      Tn3270eClientResMapEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Definition of a single resource pool to client group

          mapping."
      INDEX  { tn3270eSrvrConfIndex,
               tn3270eClientResMapPoolName,
               tn3270eClientResMapClientGroupName,
               tn3270eClientResMapClientPort }
      ::= { tn3270eClientResMapTable 1 }

  Tn3270eClientResMapEntry ::= SEQUENCE {
      tn3270eClientResMapPoolName           Utf8String,
      tn3270eClientResMapClientGroupName    Utf8String,
      tn3270eClientResMapClientPort         Unsigned32,
      tn3270eClientResMapRowStatus          RowStatus
  }

  tn3270eClientResMapPoolName OBJECT-TYPE
      SYNTAX      Utf8String (SIZE(1..24))
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The name of a resource pool."
      ::= { tn3270eClientResMapEntry 1 }

  tn3270eClientResMapClientGroupName OBJECT-TYPE
      SYNTAX      Utf8String (SIZE(1..24))
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The name of the client group that is mapped to a
           resource pool."
      ::= { tn3270eClientResMapEntry 2 }

  tn3270eClientResMapClientPort OBJECT-TYPE
      SYNTAX      Unsigned32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A port number restricting the scope of a mapping
          from a resource pool to a client group.  The
          value 0 for this object indicates that the scope
          of the mapping is not restricted."
      ::= { tn3270eClientResMapEntry 3 }

  tn3270eClientResMapRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object allows entries to be created and deleted

          in the tn3270eClientResMapTable.  Entries may also be
          created and deleted as a result of implementation-
          dependent operations.

          An entry in this table is deleted by setting this object
          to destroy(6).  Removing an entry from this table doesn't
          affect any other table entry defined in this MIB."
      REFERENCE
          "RFC 1903, 'Textual Conventions for version 2 of the
          Simple Network Management Protocol (SNMPv2).'"
      ::= { tn3270eClientResMapEntry 4 }

  tn3270eResMapTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF Tn3270eResMapEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "This table defines the actual mapping of a resource
          to a client address.

          No entry in this table shall exist without
          a corresponding (same tn3270eSrvrConfIndex) entry in
          the tn3270eSrvrConfTable existing."
      ::= { tn3270eObjects 8 }

  tn3270eResMapEntry OBJECT-TYPE
      SYNTAX      Tn3270eResMapEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Definition of the mapping of a Resource Element to
           a client address."
      INDEX  { tn3270eSrvrConfIndex,
               tn3270eResMapElementName }
      ::= { tn3270eResMapTable 1 }

  Tn3270eResMapEntry ::= SEQUENCE {
      tn3270eResMapElementName       SnaResourceName,
      tn3270eResMapAddrType          IANATn3270eAddrType,
      tn3270eResMapAddress           IANATn3270eAddress,
      tn3270eResMapPort              Unsigned32,
      tn3270eResMapElementType       IANATn3270ResourceType,
      tn3270eResMapSscpSuppliedName  SnaResourceName
  }

  tn3270eResMapElementName OBJECT-TYPE
      SYNTAX      SnaResourceName
      MAX-ACCESS  not-accessible

      STATUS      current
      DESCRIPTION
          "The name of a resource element.  This is the name by
          which the server implementing this table knows the
          resource.  It may be different from the name by which
          the resource is known in the SNA network.  This latter
          name is returned in the tn3270eResMapSscpSuppliedName
          object."
      ::= { tn3270eResMapEntry 1 }

  tn3270eResMapAddrType OBJECT-TYPE
      SYNTAX      IANATn3270eAddrType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "Indicates the type of the client address represented
          in tn3270eResMapAddress."
      ::= { tn3270eResMapEntry 2 }

  tn3270eResMapAddress OBJECT-TYPE
      SYNTAX      IANATn3270eAddress
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "A client address."
      ::= { tn3270eResMapEntry 3 }

  tn3270eResMapPort OBJECT-TYPE
      SYNTAX      Unsigned32 (0..65535)
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "A client port."
      ::= { tn3270eResMapEntry 4 }

  tn3270eResMapElementType OBJECT-TYPE
      SYNTAX      IANATn3270ResourceType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The type of the associated resource element."
      ::= { tn3270eResMapEntry 5 }

  tn3270eResMapSscpSuppliedName OBJECT-TYPE
      SYNTAX      SnaResourceName
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION

          "The name of the secondary LU (SLU) as it is known
          in a SNA network.  This name is sent by the SSCP on
          the Activate Logical Unit (ACTLU) request.  If this
          name is not known, this object returns a zero-length
          octet string."
      ::= { tn3270eResMapEntry 6 }

  -- Define the set of objects to supplement the TCP Connection Table

  tn3270eTcpConnTable OBJECT-TYPE
      SYNTAX SEQUENCE OF Tn3270eTcpConnEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
           "This table has an entry for each TN3270(E) client
           connection that is currently active at a TN3270E server.
           An implementation MAY retain entries for connections
           that have been terminated, but which entries are
           retained, how many entries are retained, and how long
           they are retained is entirely implementation-dependent.

           The indexing for this table is designed to support the
           use of an SNMP GET-NEXT operation using only the remote
           address type, remote address, and remote port, as a way
           for a Management Station to retrieve the table entries
           related to a particular TN3270(E) client."
      ::= { tn3270eObjects 9 }

  tn3270eTcpConnEntry OBJECT-TYPE
      SYNTAX Tn3270eTcpConnEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Provides information about a single TN3270/TN3270E
          session.  Note: a tn3270eSrvrConfIndex is not needed
          in this table, since the combination of remote and
          local addresses and ports is sufficient to
          guarantee uniqueness across the TN3270E servers
          serviced by an SNMP agent.  Because of this indexing
          structure, however, this table does not support
          view-based access control policies that provide
          access to table rows on a per-server basis."
      INDEX { tn3270eTcpConnRemAddrType,
              tn3270eTcpConnRemAddress,
              tn3270eTcpConnRemPort,
              tn3270eTcpConnLocalAddrType,
              tn3270eTcpConnLocalAddress,
              tn3270eTcpConnLocalPort

            }
      ::= { tn3270eTcpConnTable 1 }

  Tn3270eTcpConnEntry ::=
      SEQUENCE
      {
      tn3270eTcpConnRemAddrType          IANATn3270eAddrType,
      tn3270eTcpConnRemAddress           IANATn3270eAddress,
      tn3270eTcpConnRemPort              Unsigned32,
      tn3270eTcpConnLocalAddrType        IANATn3270eAddrType,
      tn3270eTcpConnLocalAddress         IANATn3270eAddress,
      tn3270eTcpConnLocalPort            Unsigned32,
      tn3270eTcpConnLastActivity         TimeTicks,
      tn3270eTcpConnBytesIn              Counter32,
      tn3270eTcpConnBytesOut             Counter32,
      tn3270eTcpConnResourceElement      SnaResourceName,
      tn3270eTcpConnResourceType         IANATn3270ResourceType,
      tn3270eTcpConnDeviceType           IANATn3270DeviceType,
      tn3270eTcpConnFunctions            IANATn3270Functions,
      tn3270eTcpConnId                   Unsigned32,
      tn3270eTcpConnClientIdFormat       IANATn3270eClientType,
      tn3270eTcpConnClientId             OCTET STRING,
      tn3270eTcpConnTraceData            Tn3270eTraceData,
      tn3270eTcpConnLogInfo              IANATn3270eLogData,
      tn3270eTcpConnLuLuBindImage        OCTET STRING,
      tn3270eTcpConnSnaState             INTEGER,
      tn3270eTcpConnStateLastDiscReason  INTEGER,
      tn3270eTcpConnSrvrConfIndex        Unsigned32,
      tn3270eTcpConnActivationTime       TimeStamp
      }

  tn3270eTcpConnRemAddrType OBJECT-TYPE
      SYNTAX   IANATn3270eAddrType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Indicates the type of the value of the
          tn3270eTcpConnRemAddress object.  For example,
          ipv4(1) or ipv6(2)."
      ::= { tn3270eTcpConnEntry 1 }

  tn3270eTcpConnRemAddress OBJECT-TYPE
      SYNTAX      IANATn3270eAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The remote address associated with a TN3270E client.
           tn3270eTcpConnRemAddrType indicates the address type

           (IPv4 or IPv6, for example).

           If a TN3270(E) client is connected to its
           server via a proxy client the address represented by
           the value of this object shall be the remote client's
           address, not the proxy client's address."
      ::= { tn3270eTcpConnEntry 2 }

  tn3270eTcpConnRemPort OBJECT-TYPE
      SYNTAX      Unsigned32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The remote port associated with a TN3270E client.  The value 0
          is used if the tn3270eTcpConnRemAddrType identifies an address
          type that does not support ports.

          If a TN3270(E) client is connected to its server via a proxy
          client, the port represented by the value of this object shall
          be the remote client's port, not the proxy client's port."
      ::= { tn3270eTcpConnEntry 3 }

  tn3270eTcpConnLocalAddrType OBJECT-TYPE
      SYNTAX   IANATn3270eAddrType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Indicates the type of the value of the
          tn3270eTcpConnLocalAddress object.  For example,
          ipv4(1) or ipv6(2)."
      ::= { tn3270eTcpConnEntry 4 }

  tn3270eTcpConnLocalAddress OBJECT-TYPE
      SYNTAX      IANATn3270eAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The local address associated with a TN3270E client.
           tn3270eTcpConnRemAddrType indicates the address type
           (IPv4 or IPv6, for example)."
      ::= { tn3270eTcpConnEntry 5 }

  tn3270eTcpConnLocalPort OBJECT-TYPE
      SYNTAX      Unsigned32 (1..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The remote port associated with a TN3270E client."

      ::= { tn3270eTcpConnEntry 6 }

  tn3270eTcpConnLastActivity OBJECT-TYPE
      SYNTAX   TimeTicks
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The number of 100ths of seconds since any data was
           transferred for the associated TCP Connection."
      DEFVAL  { 0 }
      ::= { tn3270eTcpConnEntry 7 }

  tn3270eTcpConnBytesIn OBJECT-TYPE
      SYNTAX   Counter32
      UNITS "octets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The number of bytes received by the server from TCP
          for this connection.

          A Management Station can detect discontinuities in
          this counter by monitoring the
          tn3270eTcpConnActivationTime object."
      ::= { tn3270eTcpConnEntry 8 }

  tn3270eTcpConnBytesOut OBJECT-TYPE
      SYNTAX   Counter32
      UNITS "octets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The number of bytes sent to TCP for this connection.

          A Management Station can detect discontinuities in
          this counter by monitoring the
          tn3270eTcpConnActivationTime object."
      ::= { tn3270eTcpConnEntry 9 }

  tn3270eTcpConnResourceElement OBJECT-TYPE
      SYNTAX   SnaResourceName
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "LU/Print secondary name for connecting an client
           into an SNA network."
      ::= { tn3270eTcpConnEntry 10 }

  tn3270eTcpConnResourceType OBJECT-TYPE
      SYNTAX   IANATn3270ResourceType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "Indicates the type of resource identified by
           tn3270eTcpConnResourceElement."
      ::= { tn3270eTcpConnEntry 11 }

  tn3270eTcpConnDeviceType OBJECT-TYPE
      SYNTAX   IANATn3270DeviceType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "Indicates the device type if negotiated with the
          client.  A value of unknown(100) should be used as
          the value of this object when a device type is not
          negotiated.  Refer to RFC 2355 for how device types
          can be negotiated."
      ::= { tn3270eTcpConnEntry 12 }

  tn3270eTcpConnFunctions OBJECT-TYPE
      SYNTAX   IANATn3270Functions
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "This object indicates which of the TN3270 and TN3270E
          functions were negotiated by the server and the client
          for this TCP connection.

          Refer to tn3270eSrvrFunctionsSupported for the list of
          these functions supported by the server."
      ::= { tn3270eTcpConnEntry 13 }

  tn3270eTcpConnId OBJECT-TYPE
      SYNTAX      Unsigned32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The connection identifier associated with a TN3270 or
           a TN3270E session's TCP connection.  TCP implementations
           often assign a unique (with respect to itself) unsigned
           integer as an identifier for a TCP connection.

           The value 0 indicates that a connection does not have
           a valid connection identifier."
      ::= { tn3270eTcpConnEntry 14 }

  tn3270eTcpConnClientIdFormat OBJECT-TYPE
      SYNTAX      IANATn3270eClientType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The format of a corresponding tn3270eTcpConnClientId
          object as defined by the IANSTn3270eClientType textual
          convention imported from the IANATn3270eTC-MIB."
      ::= { tn3270eTcpConnEntry 15 }

  tn3270eTcpConnClientId OBJECT-TYPE
      SYNTAX      OCTET STRING (SIZE (0..512))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "Additional client identification information.  The
          type of this information is indicated by the value of
          the corresponding tn3270eTcpConnClientIdFormat object.
          All values are returned in network-byte order.

          The purpose of this object is to provide an alternate
          means of identifying a client, other than though the
          remote address returned in tn3270eTcpConnRemAddress."
      ::= { tn3270eTcpConnEntry 16 }

  tn3270eTcpConnTraceData OBJECT-TYPE
      SYNTAX   Tn3270eTraceData
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "Trace data for this session."
      ::= { tn3270eTcpConnEntry 17 }

  tn3270eTcpConnLogInfo OBJECT-TYPE
      SYNTAX      IANATn3270eLogData
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "Log information, encoded as specified in the
          IANATn3270eLogData textual convention from the
          IANAtn3270eTC-MIB."
      ::= { tn3270eTcpConnEntry 18 }

  tn3270eTcpConnLuLuBindImage  OBJECT-TYPE
      SYNTAX   OCTET STRING (SIZE (0..256))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION

          "When there is a currently active LU-LU session for
          this connection, this object returns the BIND Image
          (defined to be bytes 1-p of the complete BIND Request
          Unit -- see 'SNA Formats' for more information)
          that was received from the PLU during session
          activation.  When there is no active LU-LU session,
          or when a BIND image is unavailable for some other
          reason, this object returns a zero-length octet
          string."
      REFERENCE
          "'Systems Network Architecture Formats', IBM
          Publication GA27-3136."
      ::= { tn3270eTcpConnEntry 19 }

  tn3270eTcpConnSnaState  OBJECT-TYPE
      SYNTAX   INTEGER {
                     unknown(1),
                     noSluSession(2),
                     sscpLuSession(3),  -- but no LU-LU session
                     luLuSession(4),    -- but no SSCP-LU session
                     sscpLuSessionAndLuLuSession(5)
                        }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The current state of the SNA side of the end-to-end
          TN3270 connection.  The following states are defined:

              unknown(1)          - The true state is not known.
              noSluSession(2)     - The SLU has neither an SSCP-LU
                                    nor an LU-LU session active.
              sscpLuSession(3)    - The SSCP-LU session for the SLU
                                    is active, but the SLU is not
                                    currently in session with a PLU.
              luLuSession(4)      - The SLU is currently in session
                                    with a PLU, but the SSCP-LU
                                    session for the LU is not active.
              sscpLuSessionAndLuLuSession(5) - The SLU currently has
                                    an active session with a PLU,
                                    and the SSCP-LU session for the
                                    SLU is active."

      ::= { tn3270eTcpConnEntry 20 }

  tn3270eTcpConnStateLastDiscReason OBJECT-TYPE
      SYNTAX   INTEGER {
                    unknown(1),
                    hostSendsUnbind(2),

                    hostDontAcceptConnection(3),
                    outOfResource(4),
                    clientProtocolError(5),
                    invalidDeviceName(6),
                    deviceInUse(7),
                    inactivityTimeout(8),
                    hostNotResponding(9),
                    clientNotResponding(10),
                    serverClose(11),
                    sysreqLogoff(12),
                    serverSpecificHexCode(13)
                       }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The last disconnect reason.  A session that has not
          experienced a disconnect shall use the value unknown(1)
          for this object.  Depending on when an implementation
          removes entries from this table, certain states may
          never be returned."
      ::= { tn3270eTcpConnEntry 21 }

  tn3270eTcpConnSrvrConfIndex OBJECT-TYPE
      SYNTAX      Unsigned32 (1..4294967295)
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "tn3270eSrvrConfIndex of the tn3270eSrvrConfEntry
          belonging to the TN3270E server to which this entry
          belongs."
      ::= { tn3270eTcpConnEntry 22 }

  tn3270eTcpConnActivationTime OBJECT-TYPE
      SYNTAX      TimeStamp
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The value of the sysUpTime object the last time
          this TCP connection became active."
      ::= { tn3270eTcpConnEntry 23 }

  tn3270eConfSpinLock OBJECT-TYPE
      SYNTAX      TestAndIncr
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
        "An advisory lock used to allow cooperating
        TN3270E-MIB applications to coordinate their use

        of the tn3270eSrvrConfTable, the tn3270eSrvrPortTable,
        the tn3270eClientGroupTable, the tn3270eResPoolTable,
        and the tn3270eClientResMapTable.

        When creating a new entry or altering an existing entry
        in the any of the tables mentioned above, an application
        should make use of tn3270eRtSpinLock to serialize
        application changes or additions.

        Since this is an advisory lock, the use of this lock is
        not enforced."
      ::= { tn3270eObjects 10 }

  -- Conformance Definitions

  tn3270eGroups      OBJECT IDENTIFIER ::= { tn3270eConformance 1 }

  tn3270eCompliances OBJECT IDENTIFIER ::= { tn3270eConformance 2 }

  -- compliance statements

  tn3270eCompliance MODULE-COMPLIANCE
      STATUS      current
      DESCRIPTION
          "The compliance statement for agents that support the
          TN3270E-MIB."
      MODULE -- this module
          MANDATORY-GROUPS { tn3270eBasicGroup,
                             tn3270eSessionGroup
                           }
          GROUP       tn3270eResMapGroup
          DESCRIPTION
              "This group is optional and provides a method of
              performing tn3270eClientGroup to tn3270eResPool
              mapping."

          GROUP       tn3270eHiCapacityGroup
          DESCRIPTION
              "This group is optional and provides for support
              of high capacity counters."

          OBJECT tn3270eSrvrConfConnectivityChk
             MIN-ACCESS  read-only
             DESCRIPTION
                "The agent is not required to support a set to this
                 object if the associated TN3270E server doesn't
                 support either TIMING-MARK or NOP processing.  In
                 this case an agent should return noCheck on

                 retrieval."

          OBJECT tn3270eSrvrConfTmNopInactTime
             MIN-ACCESS  read-only
             DESCRIPTION
                "The agent is not required to support a set to this
                 object if the functions enabled by
                 tn3270eSrvrConfConnectivityChk are not supported.
                 An agent in this case should return a value of 0."

          OBJECT tn3270eSrvrConfTmNopInterval
             MIN-ACCESS  read-only
             DESCRIPTION
                "The agent is not required to support a set to this
                 object if the functions enabled by
                 tn3270eSrvrConfConnectivityChk are not supported.
                 An agent in this case should return a value of 0."

         OBJECT  tn3270eSrvrConfAdminStatus
             DESCRIPTION
                "A TN3270E server is not required to support a
                 stopImmediate state transition."

          OBJECT tn3270eSrvrConfRowStatus
             MIN-ACCESS read-only
             DESCRIPTION
                 "Write access is not required."

          OBJECT tn3270eSrvrConfTmTimeout
             MIN-ACCESS  read-only
             DESCRIPTION
                "The agent is not required to support a set to this
                 object if the functions enabled by
                 tn3270eSrvrConfConnectivityChk are not supported.
                 An agent in this case should return a value of 0."

          OBJECT tn3270eSrvrPortRowStatus
             MIN-ACCESS read-only
             DESCRIPTION
                 "Write access is not required."

          OBJECT tn3270eClientGroupRowStatus
             MIN-ACCESS read-only
             DESCRIPTION
                 "Write access is not required."

          OBJECT tn3270eResPoolRowStatus
             MIN-ACCESS read-only

             DESCRIPTION
                 "Write access is not required."

          OBJECT tn3270eClientResMapRowStatus
             MIN-ACCESS read-only
             DESCRIPTION
                 "Write access is not required."

      ::= { tn3270eCompliances 1 }

  -- units of conformance

  tn3270eBasicGroup OBJECT-GROUP
      OBJECTS {
          tn3270eSrvrConfInactivityTimeout,
          tn3270eSrvrConfConnectivityChk,
          tn3270eSrvrConfTmNopInactTime,
          tn3270eSrvrConfTmNopInterval,
          tn3270eSrvrFunctionsSupported,
          tn3270eSrvrConfAdminStatus,
          tn3270eSrvrConfOperStatus,
          tn3270eSrvrConfSessionTermState,
          tn3270eSrvrConfSrvrType,
          tn3270eSrvrConfContact,
          tn3270eSrvrConfRowStatus,
          tn3270eSrvrConfLastActTime,
          tn3270eSrvrConfTmTimeout,
          tn3270eSrvrPortRowStatus,
          tn3270eSrvrStatsUpTime,
          tn3270eSrvrStatsMaxTerms,
          tn3270eSrvrStatsInUseTerms,
          tn3270eSrvrStatsSpareTerms,
          tn3270eSrvrStatsMaxPtrs,
          tn3270eSrvrStatsInUsePtrs,
          tn3270eSrvrStatsSparePtrs,
          tn3270eSrvrStatsInConnects,
          tn3270eSrvrStatsConnResrceRejs,
          tn3270eSrvrStatsDisconnects,
          tn3270eSrvrStatsInOctets,
          tn3270eSrvrStatsOutOctets,
          tn3270eSrvrStatsConnErrorRejs,
          tn3270eClientGroupSubnetMask,
          tn3270eClientGroupPfxLength,
          tn3270eClientGroupRowStatus,
          tn3270eSnaMapLocalName,
          tn3270eSnaMapPrimaryLuName,
          tn3270eConfSpinLock
      }

      STATUS  current
      DESCRIPTION
          "This group is mandatory for all hosts supporting the
           TN3270E-MIB."
      ::= { tn3270eGroups 1 }

  tn3270eSessionGroup OBJECT-GROUP
      OBJECTS {
          tn3270eResMapAddrType,
          tn3270eResMapAddress,
          tn3270eResMapPort,
          tn3270eResMapElementType,
          tn3270eResMapSscpSuppliedName,
          tn3270eTcpConnLastActivity,
          tn3270eTcpConnBytesIn,
          tn3270eTcpConnBytesOut,
          tn3270eTcpConnResourceElement,
          tn3270eTcpConnResourceType,
          tn3270eTcpConnDeviceType,
          tn3270eTcpConnFunctions,
          tn3270eTcpConnSrvrConfIndex,
          tn3270eTcpConnActivationTime
        }
      STATUS  current
      DESCRIPTION
          "This group is mandatory for all hosts supporting the
           TN3270E-MIB."
      ::= { tn3270eGroups 2 }

  tn3270eResMapGroup OBJECT-GROUP
      OBJECTS {
          tn3270eResPoolElementType,
          tn3270eResPoolRowStatus,
          tn3270eClientResMapRowStatus,
          tn3270eTcpConnId,
          tn3270eTcpConnClientIdFormat,
          tn3270eTcpConnClientId,
          tn3270eTcpConnTraceData,
          tn3270eTcpConnLogInfo,
          tn3270eTcpConnLuLuBindImage,
          tn3270eTcpConnSnaState,
          tn3270eTcpConnStateLastDiscReason
        }
      STATUS  current
      DESCRIPTION
          "This group is optional for all hosts supporting the
           TN3270E-MIB."
      ::= { tn3270eGroups 3 }

  tn3270eHiCapacityGroup OBJECT-GROUP
      OBJECTS {
          tn3270eSrvrStatsHCInOctets,
          tn3270eSrvrStatsHCOutOctets
        }
      STATUS  current
      DESCRIPTION
           "Support of these objects is REQUIRED when the
           Counter32 versions can potentially wrap too
           frequently.  This group is optional for all other
           hosts supporting the TN3270E-MIB.

           The IF-MIB (RFC 2233) requires that the 64-bit
           versions of its counters be implemented when an
           interface can support rates of around 20 million
           bits per second or greater.  This implies a minimum
           wrap rate of just over 28 minutes.  It is recommended
           that this same guideline be used for determining
           whether an implementation implements these objects.

           This group contains two objects with the syntax
           Counter64.  An implementation that doesn't support
           these objects should return noSuchObject, since
           returning a zero is misleading."

      ::= { tn3270eGroups 4 }

  END